// $Id: partitionizer.h 55 2004-10-13 19:30:12Z hansemil $
#ifndef PARTITIONIZER_H
#define PARTITIONIZER_H

#include "chosenton.h"

class Node;

/**
 * This is the pure virtual base class for partitioning nodes. No functionality
 * here what so ever.
 * Inherrit this class if you want to create a new type of partitioning.
 * @warning The partitions has to be arranged with the fastest partition having the lowes partition id, and so on.
 */
class Partitionizer : public Chosenton<Partitionizer> {
public:
	virtual ~Partitionizer() {}

	virtual int getPartition(Node *) = 0;
	virtual int getPartitionCount() = 0;
	virtual char *getPartitionName(int) = 0;

protected:
	Partitionizer() {}
	friend class Chosenton<Partitionizer>;
};

#endif
